Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek, which are incorporated herein by reference. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In some instances, it may be desirable to copy data from one storage device to another. For example, if a host writes data to a first storage device, it may be desirable to copy that data to a second storage device provided in a different location so that if a disaster occurs that renders the first storage device inoperable, the host (or another host) may resume operation using the data of the second storage device. Such a capability is provided, for example, by the Remote Data Facility (RDF) product provided by EMC Corporation of Hopkinton, Mass. With RDF, a first storage device, denoted the “primary storage device” (or “R1”) is coupled to the host. One or more other storage devices, called “secondary storage devices” (or “R2”) receive copies of the data that is written to the primary storage device by the host. The host interacts directly with the primary storage device, but any data changes made to the primary storage device are automatically provided to the one or more secondary storage devices using RDF. The primary and secondary storage devices may be connected by a data link, such as an ESCON link, a Fibre Channel link, and/or a Gigabit Ethernet link. The RDF functionality may be facilitated with an RDF adapter (RA) provided at each of the storage devices.
There may be a number of different types of RDF transmission. Synchronous RDF mode allows synchronous data transfer where, after an initial data write from a host to a primary storage device, the data is transferred from the primary storage device to a secondary storage device using RDF. Receipt of the data is acknowledged by the secondary storage device to the primary storage device which then provides a write acknowledge back to the host for the initial data write. Thus, in synchronous RDF mode, the host does not receive a write acknowledge from the primary storage device until the RDF transfer to the secondary storage device has been completed and acknowledged by the secondary storage device.
A drawback to synchronous. RDF transmission is that the latency of each of the write operations is increased by waiting for the acknowledgement of the RDF transfer. This problem is exacerbated when there is a long distance between the primary storage device and the secondary storage device; because of transmission delays, the time delay required for making the RDF transfer and then waiting for an acknowledgement back after the transfer is complete may be unacceptable.
It is also possible to use RDF in an a semi-synchronous mode, in which case the data is written from the host to the primary storage device which acknowledges the write immediately and then, at the same time, begins the process of transferring the data to the secondary storage device. Thus, for a single transfer of data, this scheme overcomes some of the disadvantages of using RDF in the synchronous mode. However, in the semi-synchronous transfer mode, the primary storage device does not acknowledge a second write by a host until a previous transfer is acknowledged by the secondary storage device. Thus, the bottlenecks associated with using RDF in the synchronous mode are simply delayed by one iteration because a second write cannot occur until transfer of previous data has been acknowledged by the secondary storage device.
Another possibility for an RDF system is to have the host write data to the primary storage device and have the primary storage device copy data asynchronously to the secondary storage device in the background. The background copy involves cycling through each of the tracks of the primary storage device sequentially and, when it is determined that a particular block has been modified since the last time that block was copied, the block is transferred from the primary storage device to the secondary storage device. Although this mechanism may attenuate latency problems associated with synchronous and semi-synchronous data transfer modes, a difficulty still exists because there can not be a guarantee of data consistency between the primary and secondary storage devices. If there are problems, such as a failure of the primary system, the secondary system may have stored therein out-of-order changes that make the data unusable.
A solution to this problem, proposed by EMC Corporation, is the Symmetrix Automated Replication (SAR) process, described in U.S. Pat. No. 7,024,528 to LeCrone, et al., which is incorporated herein by reference. The SAR uses logical devices (BCV's) that can mirror standard logical devices. A BCV device can also be split from its standard logical device after being mirrored and can be resynced (i.e., reestablished as a mirror) to the standard logical devices after being split. Thus, a background copy may be performed after a split and before a resync. However, using the SAR process requires the significant overhead of continuously splitting and resyncing the BCVs, as well as the additional storage needed for the BCVs. The SAR process also uses host control and management, which relies on the controlling host being operational. In addition, the cycle time for a practical implementation of a SAR process may be on the order of twenty to thirty minutes, and thus the amount of data that may be lost when an RDF link and/or primary device fails could be twenty to thirty minutes worth of data.
One solution to the above-noted problems is a product by EMC Corporation known as SRDF/A in which data sets are transferred to the secondary array at defined intervals. Using SRDF/A, data to be copied from one storage array to another in chunks that are assigned sequence numbers based on when the data was written by the host. The data chunks are then separately transmitted according to the sequence number. Although the remote copy of the data may not be as current as the primary copy, SRDF/A allows replication of data over considerable distances in a manner that avoids the latency issues of synchronous transfers and has reduced bandwidth requirements. Moreover, data ordering problems associated with other types of remote data synchronous transfers are avoided. The SRDF/A technique is further discussed elsewhere herein.
A system operating with RDF techniques may use combinations of the above-noted operation modes. In implementations using, for example, both synchronous and asynchronous RDF transfer modes, however, problems may occur in determining priority of writes. For example, a weighting system may be used to used to manage workload according to a polling mechanism for selecting an RDF group. An RDF group may be assigned a certain weight according to the length of its local RDF workload queue, which is an evaluation proportional to the workload of that group. Selecting the group for the next write may done in a pseudo-random fashion but controlled such that the tendency is to select a group that has a higher weight. For an example of managing workload according to a weighting system based on queue length, see U.S. Pat. No. 6,886,164 to Meiri, which is incorporated herein by reference. Because of the latency issues described above, priority may be given to synchronous transfers over asynchronous transfers using the weighting system. However, for an RDF system in which both synchronous and asynchronous transfers occur using the same RA, a simple weighting system as described may not efficiently service asynchronous transfers if synchronous transfers are repeatedly received and given priority.
Further, a static weighting system does not address issues involving continually changing workload queues. Using, for example, SRDF/A, queue lengths may quickly and dramatically change in a system such that at the end of one cycle a queue may be empty, but in the beginning of the next cycle, the queue may become very large. Calculating priority only using queue length may therefore result in inefficiencies where, for example, a priority is determined for a queue having a small queue length but, shortly thereafter, and before priority is recalculated, the queue length increases significantly.
Accordingly, it would be desirable to provide a data storage system that efficiently handles requests for data transfers under different transfer modes.